package com.dragon.modules.yuegou.entity.park;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.park.DeductionRuleDayLimit;
import com.dragon.modules.yuegou.enums.park.DeductionRuleDeductionType;
import com.dragon.modules.yuegou.enums.park.DeductionRuleDefaultUse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 停车抵扣规则实体类<br>
 * 对应的表为：park_deduction_rule<br>
 * 
 * @author pbuilder generated
 * @date 2022-05-18 15:33:31
 * @company sgy
 * @version 2.0
 */
@TableName("park_deduction_rule")
@ApiModel(description = "停车抵扣规则")
public class DeductionRuleEntity {

    /**  */
	protected String id;

    /** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

    /** [枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT */
	@ApiModelProperty("[枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT")
	protected DeductionRuleDeductionType deductionType;

    /** 最小抵扣单位(积分) */
	@ApiModelProperty("最小抵扣单位(积分)")
	protected Integer unit;

    /** 换算 */
	@ApiModelProperty("换算")
	protected Integer unitMoney;

    /** 换算，最小抵扣单位=元 */
	@ApiModelProperty("换算，最小抵扣单位=元")
	protected BigDecimal money;

    /** 最少抵扣数量（积分） */
	@ApiModelProperty("最少抵扣数量（积分）")
	protected Integer minNum;

    /** 最多抵扣数量（积分 */
	@ApiModelProperty("最多抵扣数量（积分")
	protected Integer maxNum;

    /** [枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES */
	@ApiModelProperty("[枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES")
	protected DeductionRuleDayLimit dayLimit;

    /** 每月抵扣次数 */
	@ApiModelProperty("每月抵扣次数")
	protected Integer dayMax;

    /** 创建人ID */
	@ApiModelProperty("创建人ID")
	protected String createdBy;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 更新人ID */
	@ApiModelProperty("更新人ID")
	protected String modifiedBy;

    /** 更新时间 */
	@ApiModelProperty("更新时间")
	protected LocalDateTime modifiedTime;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

    /** [枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND */
	@ApiModelProperty("[枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND")
	protected DeductionRuleDefaultUse defaultUse;

	/**
	 * 构造一个空停车抵扣规则实体对象
	 */
	public DeductionRuleEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个停车抵扣规则实体对象
	 * 
	 * @param other 其它对象
	 */
	public DeductionRuleEntity(DeductionRuleEntity other){
		super();
     	this.id = other.id;
     	this.busdId = other.busdId;
     	this.deductionType = other.deductionType;
     	this.unit = other.unit;
     	this.unitMoney = other.unitMoney;
     	this.money = other.money;
     	this.minNum = other.minNum;
     	this.maxNum = other.maxNum;
     	this.dayLimit = other.dayLimit;
     	this.dayMax = other.dayMax;
     	this.createdBy = other.createdBy;
     	this.createdTime = other.createdTime;
     	this.modifiedBy = other.modifiedBy;
     	this.modifiedTime = other.modifiedTime;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
     	this.defaultUse = other.defaultUse;
	}


	/**
	 * 获取
	 * 
	 * @return id 
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置
	 * 
	 * @param id 
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取商圈ID
	 * 
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取[枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT
	 * 
	 * @return deductionType [枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT
	 */
	public DeductionRuleDeductionType getDeductionType() {
		return deductionType;
	}
  	
	/**
	 * 设置[枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT
	 * 
	 * @param deductionType [枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT
	 */
	public void setDeductionType(DeductionRuleDeductionType deductionType) {
		this.deductionType = deductionType;
	}

	/**
	 * 获取最小抵扣单位(积分)
	 * 
	 * @return unit 最小抵扣单位(积分)
	 */
	public Integer getUnit() {
		return unit;
	}
  	
	/**
	 * 设置最小抵扣单位(积分)
	 * 
	 * @param unit 最小抵扣单位(积分)
	 */
	public void setUnit(Integer unit) {
		this.unit = unit;
	}

	/**
	 * 获取换算
	 * 
	 * @return unitMoney 换算
	 */
	public Integer getUnitMoney() {
		return unitMoney;
	}
  	
	/**
	 * 设置换算
	 * 
	 * @param unitMoney 换算
	 */
	public void setUnitMoney(Integer unitMoney) {
		this.unitMoney = unitMoney;
	}

	/**
	 * 获取换算，最小抵扣单位=元
	 * 
	 * @return money 换算，最小抵扣单位=元
	 */
	public BigDecimal getMoney() {
		return money;
	}
  	
	/**
	 * 设置换算，最小抵扣单位=元
	 * 
	 * @param money 换算，最小抵扣单位=元
	 */
	public void setMoney(BigDecimal money) {
		this.money = money;
	}

	/**
	 * 获取最少抵扣数量（积分）
	 * 
	 * @return minNum 最少抵扣数量（积分）
	 */
	public Integer getMinNum() {
		return minNum;
	}
  	
	/**
	 * 设置最少抵扣数量（积分）
	 * 
	 * @param minNum 最少抵扣数量（积分）
	 */
	public void setMinNum(Integer minNum) {
		this.minNum = minNum;
	}

	/**
	 * 获取最多抵扣数量（积分
	 * 
	 * @return maxNum 最多抵扣数量（积分
	 */
	public Integer getMaxNum() {
		return maxNum;
	}
  	
	/**
	 * 设置最多抵扣数量（积分
	 * 
	 * @param maxNum 最多抵扣数量（积分
	 */
	public void setMaxNum(Integer maxNum) {
		this.maxNum = maxNum;
	}

	/**
	 * 获取[枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES
	 * 
	 * @return dayLimit [枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES
	 */
	public DeductionRuleDayLimit getDayLimit() {
		return dayLimit;
	}
  	
	/**
	 * 设置[枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES
	 * 
	 * @param dayLimit [枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES
	 */
	public void setDayLimit(DeductionRuleDayLimit dayLimit) {
		this.dayLimit = dayLimit;
	}

	/**
	 * 获取每月抵扣次数
	 * 
	 * @return dayMax 每月抵扣次数
	 */
	public Integer getDayMax() {
		return dayMax;
	}
  	
	/**
	 * 设置每月抵扣次数
	 * 
	 * @param dayMax 每月抵扣次数
	 */
	public void setDayMax(Integer dayMax) {
		this.dayMax = dayMax;
	}

	/**
	 * 获取创建人ID
	 * 
	 * @return createdBy 创建人ID
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取更新人ID
	 * 
	 * @return modifiedBy 更新人ID
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy 更新人ID
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取更新时间
	 * 
	 * @return modifiedTime 更新时间
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime 更新时间
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

	/**
	 * 获取[枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND
	 * 
	 * @return defaultUse [枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND
	 */
	public DeductionRuleDefaultUse getDefaultUse() {
		return defaultUse;
	}
  	
	/**
	 * 设置[枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND
	 * 
	 * @param defaultUse [枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND
	 */
	public void setDefaultUse(DeductionRuleDefaultUse defaultUse) {
		this.defaultUse = defaultUse;
	}

    public String toString() {
		return new StringBuilder().append("DeductionRuleEntity{").
			append("id=").append(id).
			append(",busdId=").append(busdId).
			append(",deductionType=").append(deductionType).
			append(",unit=").append(unit).
			append(",unitMoney=").append(unitMoney).
			append(",money=").append(money).
			append(",minNum=").append(minNum).
			append(",maxNum=").append(maxNum).
			append(",dayLimit=").append(dayLimit).
			append(",dayMax=").append(dayMax).
			append(",createdBy=").append(createdBy).
			append(",createdTime=").append(createdTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append(",defaultUse=").append(defaultUse).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public DeductionRuleEntity copy() {
		return new DeductionRuleEntity(this);
	}

    /**  */
	public static final String COL_ID = "id";

    /** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

    /** [枚举]抵扣方式：1-仅用卷-VOLUME、2-仅用积分-INTEGRAL、3-卷和积分-VOLUME_INTEGRAL、4-卷和积分二选一-COUPON_OR_POINT */
	public static final String COL_DEDUCTION_TYPE = "deduction_type";

    /** 最小抵扣单位(积分) */
	public static final String COL_UNIT = "unit";

    /** 换算 */
	public static final String COL_UNIT_MONEY = "unit_money";

    /** 换算，最小抵扣单位=元 */
	public static final String COL_MONEY = "money";

    /** 最少抵扣数量（积分） */
	public static final String COL_MIN_NUM = "min_num";

    /** 最多抵扣数量（积分 */
	public static final String COL_MAX_NUM = "max_num";

    /** [枚举]是否限制每日抵扣次数：0-不限制-NO、1-限制-YES */
	public static final String COL_DAY_LIMIT = "day_limit";

    /** 每月抵扣次数 */
	public static final String COL_DAY_MAX = "day_max";

    /** 创建人ID */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 更新人ID */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 更新时间 */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";

    /** [枚举]默认使用DEDUCTION_TYPE为4时不能为空：1-卷-COUPON、2-积分-POINT、3-智能推荐-RECOMMEND */
	public static final String COL_DEFAULT_USE = "default_use";
}
